#ifndef TIMERANGEWIDGET_H
#define TIMERANGEWIDGET_H

#include <QWidget>
#include <QVector>
#include <QPair>
#include <QDateTime>
#include <QSlider>
#include <QMap>

class TimeRangeWidget : public QWidget
{
    Q_OBJECT

public:
    explicit TimeRangeWidget(QWidget *parent = nullptr);

    // 设置日期（用于计算时间戳）
    void setDate(const QDate &date);

    // 添加一个时间范围（起始和结束时间，格式为秒数从0点开始）
    void addTimeRange(int startSeconds, int endSeconds);

    //根据传递过来的json设置所有绿条范围
    void addTimeRangeList(QVector<QPair<int, int>> m_timeRanges);

    // 清除所有时间范围
    void clearTimeRanges();

    // 设置当前时间位置
    void setCurrentTime(int seconds);


signals:
    //获取当前点击的时间
    void timeClicked(const QDateTime &timestamp);

protected:
    void paintEvent(QPaintEvent *event) override;
    void mousePressEvent(QMouseEvent *event) override;
    void resizeEvent(QResizeEvent *event) override;

private:
    QDate m_date;
    QVector<QPair<int, int>> m_timeRanges; // 存储时间范围（秒数）
    int m_currentTime; // 当前时间位置（秒数）

    // 计算相关参数
    int m_hourWidth; // 每小时的宽度
    int m_totalHours; // 总小时数（例如24小时）

    // 将像素位置转换为时间（秒数）
    int pixelToTime(int x) const;

    // 将时间（秒数）转换为像素位置
    int timeToPixel(int seconds) const;
};

#endif // TIMERANGEWIDGET_H
